package com.newaim.util;

import com.newaim.exception.CustomException;
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class DateUtils {

    /**
     * 当前时间 yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static String nowString() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
        return sdf.format(new Date());
    }

    /**
     * 字符转换为日期。
     * @param value  时间字符串
     * @param pattern 时间格式,如yyyy-MM-dd HH:mm:ss
     * @return
     */
    public static Date valueOf(String value, String pattern) {
        SimpleDateFormat format= new SimpleDateFormat(pattern);

        Date date = null;
        if (StringUtils.isBlank(value)) {
            return null;
        }

        try {
            date = format.parse(value);
        } catch (ParseException e) {
            throw new CustomException("Date convert failure!");
        }
        return date;
    }

    /**
     * 日期加减运算
     * @param date
     * @param amount
     * @return  date yyyy-MM-dd
     */
    public  static Date addDays(Date date,int amount) {
        Calendar c = Calendar.getInstance();
        c.setTime(date);
        c.add(Calendar.DATE, amount);
        return  c.getTime();
    }

}
